1. Field of the Invention
The present invention is directed to an audio time stamp representation used for synchronization purposes in the field of embedded multimedia systems.
2. Background
In a multiprocessor system, computation intensive tasks such as audio decoding are usually done in a separate processor, such as a digital signal processor (DSP), while task handling such as audio/video synchronization is handled by the host microprocessor. The host microprocessor, such as an Advanced RISC Machine (ARM), needs time stamp reporting from the audio decoder for multiple purposes, such as audio/audio sync, audio/video sync, and audio playback time display.
The Transmission Control Protocol (TCP) guarantees reliable and in-order delivery of data from a sender to a receiver. But it requires re-transmission overhead (causing bandwidth waste) and also the extra delay for buffering up at the receiver may cause interruption to real time playback of audio or video. The TCP is not usually used for multimedia streaming.
As another protocol, the User Datagram Protocol (UDP) uses a checksum, such as a cyclical redundancy check (CRC), to address error correctness of the data. The UDP Lite only uses a checksum for sensitive header data, and allows the codec to handle error corrupted data. As such, the UDP Lite is faster but may result in bit errors being undetected and sent to the audio or video codec. Most original equipment manufacturers (OEM) require the UDP for mobile device streaming due to the fact that it is faster and does not have the re-transmission bandwidth overhead, and most audio/video codecs can handle bit errors to some extent.
For example, QUALCOMM's MediaFlo broadcast system uses a proprietary protocol that does not allow re-transmission, so the audio/video codec may receive an erroneous bitstream. In general, for a multimedia streaming system that uses the UDP Lite or other “best-effort” (un-reliable) protocols, the audio/video codec may receive erroneous bitstream data that is not detectable in the upper layer.
A conventional way of reporting the time stamp is to have the audio decoder report the playback time or audio frame number to the host microprocessor. However, when audio packets have errors, the reported time stamp is erroneous.
Most video coding standards have timestamp information embedded within the bitstream which can be advantageously used by the host microprocessor to maintain audio-video synchronization. However, such timestamps are typically not available in audio coding standards.
For a packed audio bitstream that uses variable length coding scheme such as Huffman coding, when the bitstream is corrupted, the audio decoder loses accurate bitstream boundary information and will no longer be able to report accurate time stamps to the host microprocessor. The inaccurate reporting ensues since the audio decoder will generally consume more or less bitstream data when a bit error is encountered in the packet. As a result, the playback time will be out of sync with the bitstream consumption rate. When the host microprocessor uses the reported erroneous audio playback time for synchronization or any other purposes, the cumulative nature of the errors can make it impossible to resynchronize correctly.
In view of the foregoing, it is desirable to provide an error robust reporting method and embedded multimedia system which achieve accurate time stamp reporting back to the host microprocessor for improved system synchronization.
It is further desirable to provide an error robust reporting method for use in a multimedia system that compensates for the cumulative nature of errors in an audio bitstream.
It is further desirable to provide an error robust reporting method that compensates for the cumulative nature of errors in a multimedia system that uses a protocol that does not require re-transmission.
Furthermore, it is desirable to provide an error robust reporting method which can be used in multimedia systems that uses the UDP Lite or other “best-effort” (un-reliable) protocols.